package org.example.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.example.domain.po.ErpAccount;
import org.example.domain.po.ErpDepotItem;
import org.example.domain.po.ErpSupplier;
import org.example.domain.po.ErpUser;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class ErpDepotHeadVO {

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 类型(出库/入库)
     */
    private String type;

    /**
     * 出入库分类
     */
    private String subType;

    /**
     * 初始票据号
     */
    private String defaultNumber;

    /**
     * 票据号
     */
    private String number;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 出入库时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

    private Date operTime;

    /**
     * 供应商id
     */
    private Long organId;

    /**
     * 操作员
     */
    private Long creator;

    /**
     * 账户id
     */
    private Long accountId;

    /**
     * 变动金额(收款/付款)
     */
    private BigDecimal changeAmount;

    /**
     * 找零金额
     */
    private BigDecimal backAmount;

    /**
     * 合计金额
     */
    private BigDecimal totalPrice;

    /**
     * 付款类型(现金、记账等)
     */
    private String payType;

    /**
     * 单据类型
     */
    private String billType;

    /**
     * 备注
     */
    private String remark;

    /**
     * 附件名称
     */
    private String fileName;

    /**
     * 业务员（可以多个）
     */
    private String salesMan;

    /**
     * 多账户ID列表
     */
    private String accountIdList;

    /**
     * 多账户金额列表
     */
    private String accountMoneyList;

    /**
     * 优惠率
     */
    private BigDecimal discount;

    /**
     * 优惠金额
     */
    private BigDecimal discountMoney;

    /**
     * 优惠后金额
     */
    private BigDecimal discountLastMoney;

    /**
     * 销售或采购费用合计
     */
    private BigDecimal otherMoney;

    /**
     * 订金
     */
    private BigDecimal deposit;

    /**
     * 状态，0未审核、1已审核、2完成采购|销售、3部分采购|销售、9审核中
     */
    private String status;

    /**
     * 采购状态，0未采购、2完成采购、3部分采购
     */
    private String purchaseStatus;

    /**
     * 单据来源，0-pc，1-手机
     */
    private String source;

    /**
     * 关联订单号
     */
    private String linkNumber;

    /**
     * 租户id
     */
    private Long tenantId;
    private ErpSupplier erpSupplier;
    private BigDecimal debt;
    /**
     * 删除标记，0未删除，1删除
     */
    @TableLogic
    private String deleteFlag;
    private List<ErpDepotItem> erpDepotItemList;
    private ErpUser erpUser;
    private ErpAccount erpAccount;
}
